package com.ipartek.formacion.DAO;

import com.ipartek.formacion.interfaces.InterfaceAlumnoDAO;
import com.ipartek.formacion.interfaces.InterfaceTiradaDAO;

/**
 * 
 * @author Jonatan
 */
public abstract class DAOFactory {

	public static final int MYSQL = 1;
	public static final int SQLSERVER = 2;
	public static final int ORACLE = 3;
	public static final int ODBC = 4;
	public static final int TXTFILE = 5;

	/**
	 * Devuelve la instancia al DAO de Alumno
	 */
	public abstract InterfaceAlumnoDAO getInterfaceAlumnoDAO();

	/**
	 * Devuelve la instancia al DAO de Tiradas
	 */
	public abstract InterfaceTiradaDAO getInterfaceTiradaDAO();

	/**
	 * Devuelve la instancia al DAO de AlumnoAux
	 */
	public abstract InterfaceAlumnoDAO getInterfaceAlumnoAuxDAO();

	/**
	 * Devuelve la instancia al DAO de Tiradas
	 */
	public abstract InterfaceTiradaDAO getInterfaceTiradaAuxDAO();

	/**
	 * Constructor de la factoria
	 * 
	 * @param tipo
	 *            Tipo de factoria a crear
	 */
	public static DAOFactory getDAOFactory(int tipo) {

		switch (tipo) {
		case MYSQL:
			return new MySqlDAOFactory();
		}
		return null;
	}

}
